Embodiments of the inventive concept relate generally to semiconductor memory devices. More particularly, embodiments of the inventive concept relate to methods of programming nonvolatile memory devices and related methods of verifying programmed nonvolatile memory cells.
Semiconductor memory devices can be roughly divided into two categories according to whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices, which retain stored data when disconnected from power.
A nonvolatile memory device can operate in different modes to perform different operations. For instance, a nonvolatile memory device can operate in a program mode to perform a program operation, a read mode to perform a read operation, or an erase mode to perform an erase operation.
A flash memory device, which is one type of nonvolatile memory device, performs erase operations in units of memory blocks or sectors, and performs program operations in units of pages. Flash memory devices can be divided into subclasses according to configurations of their memory cell arrays. These subclasses include, for instance, NAND flash memory devices in which cell transistors are coupled in series between a bitline and a source line and NOR flash memory devices in which cell transistors are coupled in parallel between a bitline and a source line. In a flash memory device, a program operation changes respective threshold voltages of selected memory cells by applying predetermined voltages to the selected memory cells.
Researchers continue to develop additional forms of nonvolatile memory with improved storage capacity, performance, and lower power consumption. Examples of these additional forms of nonvolatile memory include phase change random access memory (PRAM), resistive random access memory (RRAM), and magnetic random access memory (MRAM).
In flash memory and some other types of nonvolatile memory, a verification operation is performed after a program operation to determine whether the program operation was successful. For example, in an incremental step pulse programming (ISPP) operation of a flash memory device, a program operation and a verification operation are performed on selected memory cells in each of several loops until the verification operation indicates that the selected memory cells are successfully programmed. To ensure accurate programming, the verification operation must be able to correctly determine program states of the selected memory cells. In addition, to avoid slow programming, the verification operation must be performed efficiently.